package org.ccay.core.request;

import java.io.Serializable;
import java.util.Map;

/**
 * 用户凭证
 */
public interface IUserPrincipal extends Serializable {
	
	/**
	 * 匿名用户id
	 */
	public static final Long ANONYMOUS_USERID = 0L;
	
	/**
	 * 获取用户ID
	 * @return
	 */
	Long getUserId();
	/**
	 * 登录的用户名及权限框架使用的用户名
	 * @return
	 */
	String getUserName();
	
	/**
	 * 显示名称--通常为业务相关的名称例如：工号
	 * @return
	 */
	String getDisplayName();
	
	/**
	 * 获取Email地址
	 * @return
	 */
	String getEmail();
	
	/**
	 * 获取电话
	 * @return
	 */
	String getPhone();
	
	/**
	 * 获取用户的其他扩展属性
	 * @return
	 */
	Map<String, Serializable> getAttributes();
	
	/**
	 * 获取用户当前维度
	 * @return
	 */
	Map<String, Serializable> getCurrentDimensions();
	
}
